package java8;

public interface IExtensionMethods {

    // java 8 可以在接口中定义扩展方法「extension methods」

    /**
     * 1、许多对象可以实现相同的接口，并且它们都可以对方法使用相同的实现。基类可以解决此问题，但前提是接口实现者还没有基类，因为java不支持多重继承。
     * 2、API希望在不破坏API使用者的情况下向接口添加方法。添加具有默认实现的方法可解决此问题。
     * Java的默认方法是向接口添加默认实现的功能。因此，扩展接口的对象不必实现该方法，它们只能使用默认方法。
     */
    default void defaultMethod(){
        System.out.println("this is a default method");
    }
}
